The approaches described in this section could be pursued but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Currently, portable handheld devices such as smartphones, tablet computers, and other mobile devices are widely used all around the world. Many individuals have mobile devices and use them for a variety of purposes. These devices can enable both cellular and Wi-Fi® communication and provide the users with the ability to access content almost instantly. In particular, these devices run application software, also known as “mobile application”, “mobile app”, or simply “app”, which provide users with the access to various functionalities of these devices or content stored on the devices or on a remote server.
Mobile applications have been traditionally utilized for general productivity and information such as e-mail, calendar, contacts, and weather information. However, public demand and the availability of developer tools drove rapid expansion of mobile applications into other categories such as mobile games, navigation and location-based services, banking, order-tracking, fitness related monitoring and tracking, ticket purchases, and so forth. Mobile applications are usually available through application distribution platforms, such as Apple App Store®, Google Play®, Windows Phone Store®, and Blackberry App World®, which are specific to corresponding mobile devices such as an iPhone®, Android® phone, Windows Phone®, and Blackberry®, respectively.
The diversity of these devices presents challenges to developers who want to develop content for as wide an audience as possible, because the mobile devices are of different operating system (OS) platforms and require mobile applications to be written in supported languages. In other words, software developers need to create separate hardware/OS platform specific mobile applications for each type of mobile device, although the applications should also look similar, and provide the same functionalities and the ability to access the same content. For example, one should use Objective C language to create a native mobile application for iOS® devices (e.g., iPhone), Java to create a native mobile application for Android® devices, and .NET® language for Windows® phones. This approach allows using device core functionalities, but a native mobile application created for one device is not portable across other OS platforms and would need to be rewritten for each major OS platform.
In light of the above and for other reasons, it can be very expensive for small and middle size enterprises to develop and maintain different mobile applications for every type of OS platform. Furthermore, it may be very difficult, especially for small and middle size enterprises, to develop and properly maintain various backend web services tied to their mobile applications, as well as manage content to be delivered to users of mobile applications.